package com.ggs.rg.ybjb.pojomodule.pojo;

import com.baomidou.mybatisplus.annotation.*;

import java.util.Date;
import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

/**
 * <p>
 * 
 * </p>
 *
 * @author cxw
 * @since 2021-11-02
 */
@Data
@EqualsAndHashCode(callSuper = false)
@NoArgsConstructor
@ApiModel(value="TOrder对象", description="")
public class TOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键,唯一值,订单号使用雪花算法生成id")
    @TableId(value = "oid")
    private String oid;

    @ApiModelProperty(value = "手机号，外键，关联用户表")
    private String phone;

    @ApiModelProperty(value = "地址id,外键约束")
    private Integer aid;

    @ApiModelProperty(value = "订单地址")
    @TableField(exist = false)//表示该属性不为数据库表字段，但又是必须使用的。
    private String address;

    @ApiModelProperty(value = "收货人姓名")
    @TableField(exist = false)//表示该属性不为数据库表字段，但又是必须使用的。
    private String consigneeName;

    @ApiModelProperty(value = "收货人手机")
    @TableField(exist = false)//表示该属性不为数据库表字段，但又是必须使用的。
    private String consigneePhone;

    @ApiModelProperty(value = "收货人")
    @TableField(exist = false)//表示该属性不为数据库表字段，但又是必须使用的。
    private String name;

    @ApiModelProperty(value = "0表示删除,1表示存在,逻辑删除字段")
    @TableLogic
    private Integer deletes;

    @ApiModelProperty(value = "0表示未付款，1表示已付款")
    private Integer status;

    @ApiModelProperty(value = "订单总金额")
    private double price;

    @ApiModelProperty(value = "数据生成时自动创建时自动")
    @TableField(fill = FieldFill.INSERT)
//    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @ApiModelProperty(value = "数据生成时自动生成，修改时自动更新")
    @TableField(fill = FieldFill.INSERT_UPDATE)
//    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    @ApiModelProperty(value = "乐观锁")
    @Version
    private Integer version;

    public TOrder(String phone,double price) {
        this.phone = phone;
        this.price = price;
    }

    //    @ApiModelProperty(value = "订单里面的商品")
//    private

}
